<?php

namespace Model;

use Constants\ChargeMode;
use Constants\ChargeType;
use Constants\IsOutage;
use Constants\WhetherRefund;
use Constants\IsFreeCharge;

class GetDeviceSettingOnlineCardInfoReq
{
    public string $deviceNum; // 设备编号
}

class GetDeviceSettingOnlineCardInfoResp
{
    public int $code;      // 状态码，1 表示成功，-1表示失败
    public string $message;   // 消息描述
    public GetDeviceSettingOnlineCardInfoData $data;      // 数据，可以为 null
    public int $timestamp; // 时间戳
}

class GetDeviceSettingOnlineCardInfoData
{
    public int $id;
    public string $deviceNum;    // 设备编号
    public string $passwordA;    // 秘钥A
    public string $passwordB;    // 秘钥B
    public int $sector;       // 扇区 (1-15)
    public int $isMultiPay;   // 是否支持多路支付
    public int $chargeMode;   // 充电模式
    public int $isEnable;     // 是否开启功能
    public int $isOfflinePay; // 是否支持离线支付
    public int $free;         // 免费
    public string $createdAt;    // 创建时间
    public string $updatedAt;    // 更新时间
    public string $deletedAt;    // 删除时间
}

class DeviceSaveModeReq
{
    public ?string $deviceNum;            // 设备编号
    public ?ChargeMode $chargeMode;           // 充电模式
    public ?ChargeType $chargeType;           // 设备充电类型
    public ?array $chargeValue;          // 收费类型 数组
    public ?int $maxPower;             // 最大功率
    public ?int $startFee;             // 起充金额 (单位: 分)
    public ?int $maxPayFee;           // 最大金额 (单位: 分)
    public ?array $paymentValue;         // 每档总的金额 (单位: 分)
    public ?array $timeValue;            // 每档总的时间 (单位: 秒)
    public ?int $workCharge;           // 电费 (单位: 分/度)
    public ?int $workChargeFourDigit; // 电费 (四位数，如 10000 代表 1 元/度)
    public ?array $powerValue;           // 功率时间段
    public ?array $priceValue;           // 支付金额段
    public ?int $checkTime;            // 功率检测时间
    public ?int $incTime;              // 结算进位时间
    public ?int $type;                  // 设置类型: 0 基础设置; 1 高级设置
    public ?int $countMode;            // 功率模式计费模式
    public ?string $displayDelay;         // 延迟显示时间 (0 表示不延迟显示, 最大 60s)
    public ?string $isNotDisturb;        // 是否设置免打扰: 0 未设置; 1 设置
    public ?string $notDisturbStart;     // 免打扰开始时间
    public ?string $notDisturbEnd;       // 免打扰结束时间
    public ?int $notDisturbVolume;    // 免打扰音量
    public ?IsOutage $isOutage;             // 是否禁止断电: 0 不禁止; 1 禁止
    public ?int $autoOffWaitTime;     // 断电等待时间
    public ?int $autoOffLowerPower;   // 断电下限功率
    public ?string $floatingChargeTime;  // 浮充时间
    public ?int $floatingChargePower; // 浮充功率
    public ?WhetherRefund $whetherRefund;        // 是否可退款: 0 不可退款; 1 可退款
    public ?IsFreeCharge $isFreeCharge;        // 是否免费充电: 0 付费充电; 1 免费充电
    public ?int $detectTime;           // 端口预检测时间
}

class DeviceSaveModeResp
{
    public int $code;      // 状态码，1 表示成功，-1表示失败
    public string $message;   // 消息描述
    public DeviceSaveModeData $data;      // 数据，可以为 null
    public int $timestamp; // 时间戳
}

class DeviceSaveModeData
{
    public bool $result;
}